1. Technical Field
The present invention relates in general to improved data processing systems and in particular to improved memory management in a data processing system. Still more particularly, the present invention relates to fast paging of a large memory block within a data processing system.
2. Description of the Related Art
A standard computer system includes one or more central processing units (CPU), one or more levels of caches, one or more memory devices, and input/output (I/O) mechanisms all interconnected via an interconnection of buses and bridges. In addition to the major hardware components, a major software (or firmware) component of a computer system is an Operating System (OS). Applications running on a computer system interact with the OS.
Typically, the OS is responsible for allocating and deallocating memory within the computer system. Virtual memory allows an OS to support a very large set of addresses that can be allocated and deallocated. Usually, the set of addresses is referred to as the address space and is divided into pages.
The address space typically includes random access memory (RAM) and disk space accessible from input/output (I/O) devices. It is common to swap pages out of RAM onto disk space and swap pages into RAM from disk space. Typically, to swap a page of memory, the virtual address referring to the page must be translated into a physical address. Then, an I/O request is sent to either page in or page out the page.
In some data processing systems, such as servers, which include a large number of memory devices, these memory devices may require removal or replacement. Further, additional memory devices may be added in a server to maintain or increase the performance of the system. Changing the memory devices in a server may be referred to as Dynamic Reconfiguration (DR).
An efficient server architecture should allow for ease in the physical replacement or addition of memory and other hardware to the server system. However, often in the case of memory replacement, before the memory can be physically replaced, the data stored in memory must be paged out to disk space. Performing a page out for each individual page of a large memory block is not efficient. Thus, it would be advantageous for a server to not only include an efficient architecture for physical replacement of hardware, but for an operating system to control the memory of the server to perform fast paging out of memory for replacement. Additionally, when the new memory is recognized, it is often imperative to page data in to the memory and resume use of that memory location as quickly as possible. Thus, it would be advantageous to provide a method, system, and program for fast paging in and out of a memory block the size of a memory device for efficient replacement or addition of that memory device.